<?php 
	
	use Entities;
$em->getConnection()->beginTransaction();
	
	$tipo = strtolower(get_request("tipo"));
	if($tipo =="adicionar"){
		$tipo = "ENTRADA";
	}else if($tipo =="remover"){
		$tipo = "SAIDA";
	}
	else{
		echo "tipo Invalido";
		exit(0);
	}
	
	$idProduto= get_request("idProduto");
	$dataOperacao= get_request("dataOperacao");
	$quantidade= get_request("quantidade");
	$custoUn= get_request("custoUn");
	$custoTotal= get_request("custoTotal");
	$notaFiscal= get_request("notaFiscal");
	$fornecedor= get_request("fornecedor");
	$obs= get_request("obs");
	
	
	$produto = $em->find("Entities\Produto", $idProduto);
	$dataOperacao = getDateTimeFromDateBr($dataOperacao);
	
	$e = new Entities\Estoque();
	
	$e->setDataEntradaSaida($dataOperacao);
	$e->setFornecedor($fornecedor);
	$e->setNotaFiscal($notaFiscal);
	$e->setObs(str_replace("\n", "<br />", $obs));
	$e->setProduto($produto);
	$e->setQtd($quantidade);
	$e->setTipo($tipo);
	$e->setValorTotal($custoTotal);
	$e->setValorUnitario($custoUn);
	
	$gerenciadorEstoque = new classes\GerenciadorEstoque();
	if($tipo== "ENTRADA"){
		$gerenciadorEstoque->adicionaSaldo($e, $quantidade);
	}else{
		$gerenciadorEstoque->removeSaldo($e, $quantidade);
	}
	
	$em->persist($e);
	$em->persist($produto);
	
	$erro = "0";
	try {
		$em->flush();
		$em->getConnection()->commit();
	} catch (Exception $e) {
		$em->getConnection()->rollback();
		$erro = $e->getMessage();
	}
	
	echo "<error>$erro</error><funcao>$tipo</funcao>";
	 
?>